//package com.naiterui.ehp.bs.recommend.dao;
//
//import java.util.Date;
//import java.util.List;
//import java.util.Map;
//import java.util.Set;
//
//import com.naiterui.common.repository.hibernate.IEntityDao;
//import com.naiterui.common.repository.page.Page;
//import com.naiterui.common.repository.page.PageParamVO;
//import com.naiterui.ehp.bs.recommend.bean.MedicationRecom;
//
//public interface IMedicationRecomDao extends IEntityDao<MedicationRecom, Long> {
//
//    /**
//     *
//     * @param serialNumber
//     * @return
//     */
//    MedicationRecom findBySerialNumber(String serialNumber);
//
//    /**
//     * 医生对患者推荐用药次数
//     *
//     * @param doctorId  医生ID
//     * @param patientId 患者ID
//     *
//     * @return
//     *
//     * @Description
//     * @author wangchuan
//     * @Date 2017年7月28日
//     * @since V2.9.0
//     */
//    long getRecomCount(Long doctorId, Long patientId);
//
//    /**
//     * 获取医生推荐用药次数
//     * MedicationRecomDaoImpl.getRecomCount()
//     *
//     * @param doctorId
//     *
//     * @return
//     *
//     * @Author guoyongxiang
//     * @Date 2016年2月25日
//     * @since 2.2.0
//     */
//    long getRecomCount(Long doctorId);
//
//    /**
//     * 根据id获取推荐记录
//     * IMedicationRecomDao.getMedicationRecomById()
//     *
//     * @param id
//     *
//     * @return
//     *
//     * @Author fangguanhong
//     * @Date 2016年6月14日
//     * @since 1.0.0
//     */
//    MedicationRecom getMedicationRecomById(Long id);
//
//    /**
//     * 推药校验
//     * IMedicationRecomDao.getMedicationRecomByExtId()
//     *
//     * @param doctorId
//     * @param patientId
//     * @param extId
//     *
//     * @return
//     *
//     * @Author guoyongxiang
//     * @Date 2017年8月1日
//     * @since 2.9.0
//     */
//    MedicationRecom getMedicationRecomByExtId(Long doctorId, Long patientId, String extId);
//
//    /**
//     * <根据ID列表获取当前推荐列表>
//     *
//     * @param ids
//     *
//     * @return List<MedicationRecom> <返回值描述>
//     *
//     * @Throws 异常信息
//     * @History 2015-6-29 下午2:26:18 by guoyongxiang
//     */
//    List<MedicationRecom> getMedicationRecomByIds(Set<Long> ids);
//
//    List<MedicationRecom> getMedicationRecom(Long patientId, Long doctorId, Date start, Date end);
//
//    /**
//     * 根据医生ID分页查询推荐记录
//     * MedicationRecomDaoImpl.getRecomsByPage()
//     *
//     * @param doctorId
//     * @param pageVO
//     *
//     * @return
//     *
//     * @Author guoyongxiang
//     * @Date 2016年2月27日
//     * @since 2.2.0
//     */
//    Page<MedicationRecom> getRecomsByPage(Long doctorId, Set<Long> patientIds, PageParamVO pageVO);
//
//    /**
//     * 更新推荐购药成单状态
//     * IMedicationRecomDao.updateRecomStatus()
//     *
//     * @param recomIds
//     * @param status
//     *
//     * @Date 2016年3月23日
//     * @since 2.2.1
//     */
//    void updateRecomStatus(Set<Long> recomIds, Integer status);
//
//    /**
//     * 获取推荐用药记录集合
//     * IMedicationRecomDao.getTimeLimitRecom()
//     *
//     * @param today
//     * @param yesterday
//     * @param recomStatus
//     *
//     * @return
//     *
//     * @Date 2016年3月29日
//     * @since 2.2.1
//     */
//    List<MedicationRecom> getTimeLimitRecom(Date start, Date end, Integer recomStatus);
//
//    /**
//     * 根据推荐ID及时间获取推荐记录分组
//     * MedicationRecomDaoImpl.getMedicationRecom()
//     *
//     * @param idSet
//     * @param start
//     * @param end
//     *
//     * @return
//     *
//     * @Author guoyongxiang
//     * @Date 2016年4月5日
//     * @since 2.2.0
//     */
//    Map<Long, MedicationRecom> getMedicationRecomMap(Set<Long> idSet, Date start, Date end);
//
//    /**
//     * 根据医生ID及时间获取推荐记录分组
//     * MedicationRecomDaoImpl.getMedicationRecom()
//     *
//     * @param idSet
//     * @param start
//     * @param end
//     *
//     * @return
//     *
//     * @Author guoyongxiang
//     * @Date 2016年4月5日
//     * @since 2.2.0
//     */
//    Map<Long, MedicationRecom> getMedicationRecomByDoctorIdMap(Long doctorId, Set<Long> expIdSet, Date start, Date end);
//
//    /**
//     * 指定时间范围有过推药记录的医生
//     * IMedicationRecomDao.getDoctorIds()
//     *
//     * @param startTime
//     * @param endTime
//     *
//     * @return
//     *
//     * @Author fangguanhong
//     * @Date 2016-5-10
//     * @since 1.0.0
//     */
//    List<Long> getDoctorIds(String startTime, String endTime);
//
//    /**
//     * 根据医生ID以及其实结束时间获取医生推荐数量
//     * MedicationRecomDao.getDrNumByDr()
//     *
//     * @param doctorId
//     * @param start
//     * @param end
//     *
//     * @return
//     *
//     * @Author fangguanhong
//     * @Date 2016-3-29
//     * @since 1.0.0
//     */
//    Integer getDrNumByDr(Long doctorId, Date start, Date end, Integer status);
//
//    /**
//     * 根据医生ID获取医生推荐数量
//     * MedicationRecomDaoImpl.getDrNumByDr()
//     *
//     * @param doctorId
//     *
//     * @return
//     *
//     * @Author fangguanhong
//     * @Date 2016年6月28日
//     * @since 1.0.0
//     */
//    Integer getDrNumByDr(Long doctorId);
//
//    /**
//     * 根据医生ID获取医生推荐数量
//     * MedicationRecomDaoImpl.getDrNumByDr()
//     *
//     * @param doctorId
//     * @param status
//     *
//     * @return
//     *
//     * @Author fangguanhong
//     * @Date 2016年6月27日
//     * @since 1.0.0
//     */
//    Long getDrNumByDr(Long doctorId, Integer status);
//
//    /**
//     * 翻页查找推荐记录
//     * MedicationRecomDao.getPageRecom()
//     *
//     * @param doctorId
//     * @param start
//     * @param end
//     * @param status
//     * @param pageVO
//     *
//     * @return
//     *
//     * @Author fangguanhong
//     * @Date 2016-3-30
//     * @since 1.0.0
//     */
//    Page<MedicationRecom> getPageRecom(Long doctorId, Date start, Date end, Integer status, PageParamVO pageVO);
//
//    /**
//     * 根据医生id翻页获取推荐记录
//     *
//     * @param doctorId
//     * @param pageParam
//     *
//     * @return
//     *
//     * @Author fangguanhong
//     * @Date 2016-4-20
//     * @since 1.0.0
//     */
//    Page<MedicationRecom> findRecoms(Long doctorId, PageParamVO pageParam, String startTime, String endTime);
//
//    /**
//     * 根据患者ID与会话ID查找推荐列表
//     * IMedicationRecomDao.getRecomsByPatient()
//     *
//     * @param patientId
//     * @param doctorId
//     * @param sessionId
//     * @param page
//     * @param num
//     *
//     * @return
//     *
//     * @Author guoyongxiang
//     * @Date 2016年6月29日
//     * @since 1.0.0
//     */
//    Page<MedicationRecom> getRecomsByPatient(Long patientId, Long doctorId, Long sessionId, int page, int num);
//
//    /**
//     * 根据医生ID获取医生推荐数量
//     * MedicationRecomDaoImpl.getDrNumByDrNoTime()
//     *
//     * @param doctorId
//     * @param status
//     *
//     * @return
//     *
//     * @Author fangguanhong
//     * @Date 2016年7月5日
//     * @since 1.0.0
//     */
//    Integer getDrNumByDrNoTime(Long doctorId, Integer status);
//
//    /**
//     * 根据医生ID获取医生推荐数量
//     * MedicationRecomDaoImpl.getDrNumByDrId()
//     *
//     * @param doctorId
//     *
//     * @return
//     *
//     * @Author fangguanhong
//     * @Date 2016年7月12日
//     * @since 1.0.0
//     */
//    Long getDrNumByDrId(Long doctorId);
//
//    /**
//     * IMedicationRecomDao.getMedicationRecomByRequire()
//     *
//     * @param requireId
//     *
//     * @return
//     *
//     * @Author Gaoll
//     * @Date 2016年7月28日
//     * @since 1.0.0
//     */
//    List<MedicationRecom> getMedicationRecomByRequire(Long requireId);
//
//    MedicationRecom getByLock(Long recomId);
//
//    /**
//     * 获取未删除的推荐记录
//     * IMedicationRecomDao.getRecomsVisiableByPage()
//     *
//     * @param doctorId
//     * @param patientId
//     * @param pageVO
//     *
//     * @return
//     *
//     * @Date 2017年12月20日
//     * @since 2.14
//     */
//    Page<MedicationRecom> getRecomsVisiableByPage(Long doctorId, Long patientId, PageParamVO pageVO);
//
//    /**
//     * @param requireId
//     * @param forceRecom
//     *
//     * @return
//     *
//     * @Title: getMedicationRecomByRequireId
//     * @author: chengqiang
//     * @Description: 根据requireId获取对应的推荐单
//     * @date: 2018年8月14日 下午8:05:19
//     * @return: List<MedicationRecom>
//     */
//    List<MedicationRecom> getMedicationRecomByRequireId(Long requireId);
//
//    /**
//     * 获取待审核处方
//     * @return
//     */
//    List<Long> getPendingRecom();
//}